//
//  UIViewController+JYTabelAdaptor.h
//  JYTableBaseAdaptorTest
//
//  Created by 应明顺 on 11/27/18.
//  Copyright © 2018 JackYing. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "JYTableBaseAdaptor.h"

NS_ASSUME_NONNULL_BEGIN

@protocol JYUIViewControllerAdaptorProtocol <NSObject>

@required

@property (nonatomic, strong) JYTableBaseAdaptor *adaptor; // 必须对adaptor进行持有，否则tableview在使用后adaptor立马会被销毁
@property (nonatomic, strong) UITableView *tableView;
@property (nonatomic, strong) NSMutableArray *dataArr;


@optional

/// 表格内容顶部到表格顶部的间隙，无默认值
@property (nonatomic, assign) CGFloat topMargin;
/**
 此处进行强引用，
    在整条流水线同时初始化时可以保证所有节点都保活，但需要注意缓存问题
    也可以在每次跳转时重新赋值新的节点，注意进入前需要将次对象释放、
 */
@property (nonatomic, strong, nullable) UIViewController *nextWorker;
/// 用于就近回调，避免循环引用
@property (nonatomic, weak) UIViewController *previousWorker;

@end





@interface UIViewController (JYTabelAdaptor) <JYUIViewControllerAdaptorProtocol>


- (void)configTableAdaptor;

/// 配置初始化数据，当使用网络请求时根据所需可以选择性重写
- (NSArray<JYBaseGroupModel *> *)configTableViewDataSource;

/// 对下一页tableview上的下一页按钮设置事件
- (void)nextAction:(JYBaseHeaderFooterModel *)footerModel;

/// 配置cell的点击事件和cell的附属事件
- (void)configAdaptorAction;

- (BOOL)verifyDataSourceContent;


- (void)placeTableViewHeaderFooter;

@end




NS_ASSUME_NONNULL_END
